<?php

/**
 * sfGuardUser form.
 *
 * @package    sf_sandbox
 * @subpackage form
 * @author     Your name here
 * @version    SVN: $Id: sfDoctrinePluginFormTemplate.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class sfGuardUserForm extends PluginsfGuardUserForm
{
	public function configure()
	{
		$this->setWidgets(array(
		 'username' => new sfWidgetFormInputText(array(), array()),
		 'password' => new sfWidgetFormInputPassword(array(), array('value'=>"")),
		 'password_again' => new sfWidgetFormInputPassword(array(), array()),
		 'firstname' => new sfWidgetFormInputText(array(),array()),
		 'lastname' => new sfWidgetFormInputText(array(), array()),
		 'additional' => new sfWidgetFormTextarea(array(), array()),
		 'image' => new sfWidgetFormInputFileEditable(array('file_src'=> sfConfig::get('sf_upload_dir').'/avatars/'.$this->getObject()->getImage(),
															'is_image'  => true, 
															'with_delete'=>true,
															'delete_label' => 'удалить изображение',
															'template'  => ($this->getObject()->getImage())	?	'<div><img width="100px" src="/uploads/avatars/thumbnail_100_100_n/'.$this->getObject()->getImage().'" /><br />%input%<br /><br />%delete% %delete_label%</div>'
																												:	'<div>%input%</div>'), array()),																												
		 '_csrf_token' => new sfWidgetFormInputHidden(array())));

		$this->widgetSchema->setLabel('firstname','Имя:');
		$this->widgetSchema->setLabel('lastname','Фамилия:');
		$this->widgetSchema->setLabel('additional','О себе:');
		$this->widgetSchema->setLabel('username','E-mail(логин):');
		$this->widgetSchema->setLabel('password','Пароль:');
		$this->widgetSchema->setLabel('password_again','Повторить пароль:');
		$this->widgetSchema->setLabel('image','Аватар:');

		$this->setValidators(array(
			'firstname' => new sfValidatorString(array('min_length'=>2, 'max_length'=>20), array('min_length' => 'Длина имени должна быть более 2х символов','max_length' => 'Длина имени должна быть менее 20х символов', 'required'=>'Это поле обязательно для ввода')),
			'lastname' => new sfValidatorString(array('min_length'=>2, 'max_length'=>20), array('min_length' => 'Длина фамилии должна быть более 2х символов','max_length' => 'Длина фамилии должна быть менее 20х символов', 'required'=>'Это поле обязательно для ввода')),
			'additional' => new sfValidatorString(array('required'=>false),array()),
			'password' => new sfValidatorString(array('min_length'=>6, 'max_length'=>20, 'required'=>false) ,array('min_length'=>'Длина пароля от 6х символов','max_length'=>'Длина пароля до 20 символов')),
			'password_again' => new sfValidatorString(array('required'=>false), array()),
		
		
			'username' => new sfValidatorString(array('required'=>true),array()),
/*			'username' => new sfValidatorDoctrineUnique(array(	'model'=>'sfGuardUser',
																'required'=>false,
															  	'column'=>'username'),
																array('invalid'=>'Такой e-mail уже использован для регистрации')
															 ),
															 
		 /*'username' => new sfValidatorAnd(  array(	new sfValidatorEmail(array(),array('invalid'=>'Введите корректный e-mail')), 
													new sfValidatorDoctrineUnique(array('model'=>'sfGuardUser',
												  									  	'column'=>'username'),
																						 array('invalid'=>'Такой e-mail уже использован для регистрации')
															 ))
													),*/
		 'image' => new sfValidatorFile(array(
		 'mime_types'=>'web_images',
		 'max_size'=>1048576,		 
		 'required'=>false,
		 'path'=>sfConfig::get('sf_upload_dir').DIRECTORY_SEPARATOR.'avatars'.DIRECTORY_SEPARATOR),array('mime_types'=>'Поддерживаемые форматы - gif, jpg, png','max_size'=>'Найбольший размер загружаемой картинки - 1 МБ'))
															 ));
		 $this->validatorSchema->setPostValidator( new sfValidatorSchemaCompare('password', '==', 'password_again',array(),array('invalid'=>'Пароли должны совпадать')));
	
		 $this->widgetSchema->setHelps(array('image'=>'<div class="helps">Поддерживаемые форматы картинки - .jpg, .gif, .png размером до 1МБ</div>')); 
		 
//		 $this->validatorSchema->setPostValidator(new sfValidatorDoctrineUnique(array('model'=>'sfGuardUser','column'=>'username','primary_key'=>'id'), array('invalid'=>'Такой username использован')));
	}
}